package org.wdcode.ui.tag;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

import org.wdcode.common.tools.Conversion;
import org.wdcode.common.util.CommonUtil;

/**
 * Ckeditor富文本编辑器 标签封装
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-26
 */
public final class EditorTag extends SimpleTagSupport {
	// ID标识
	private String	id			= "content";
	// 富文本名
	private String	name		= "entity.content";
	// 主div class名
	private String	divClass	= "content";
	// 富文本值
	private String	value;
	// Ckeditor 皮肤
	private String	skin		= "office2003";

	/**
	 * 标签开始
	 */
	@Override
	public void doTag() throws JspException, IOException {
		// 生成保存字符串缓存
		StringBuilder info = new StringBuilder("<div class=\"");
		info.append(divClass);
		info.append("\"><textarea id=\"");
		info.append(id);
		info.append("\" name=\"");
		info.append(name);
		info.append("\">");
		info.append(CommonUtil.isEmpty(value) ? Conversion.toString(getJspContext().findAttribute(name)) : value);
		info.append("</textarea><script type=\"text/javascript\">");
		info.append("CKEDITOR.replace('");
		info.append(id);
		info.append("',{skin:'");
		info.append(skin);
		info.append("'});</script></div>");

		// 打印到页面
		getJspContext().getOut().print(info.toString());
	}

	/**
	 * 获得ID标识
	 * @return ID标识
	 */
	public String getId() {
		return id;
	}

	/**
	 * 设置ID标识
	 * @param id ID标识
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获得富文本名
	 * @return 富文本名
	 */
	public String getName() {
		return name;
	}

	/**
	 * 设置富文本名
	 * @param name 富文本名
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获得主div class名
	 * @return 主div class名
	 */
	public String getDivClass() {
		return divClass;
	}

	/**
	 * 设置主div class名
	 * @param divClass 主div class名
	 */
	public void setDivClass(String divClass) {
		this.divClass = divClass;
	}

	/**
	 * 获得富文本值
	 * @return 富文本值
	 */
	public String getValue() {
		return value;
	}

	/**
	 * 设置富文本值
	 * @param value 富文本值
	 */
	public void setValue(String value) {
		this.value = value;
	}

	/**
	 * Ckeditor 皮肤
	 * @return Ckeditor 皮肤
	 */
	public String getSkin() {
		return skin;
	}

	/**
	 * Ckeditor 皮肤
	 * @param skin Ckeditor 皮肤
	 */
	public void setSkin(String skin) {
		this.skin = skin;
	}

}
